/**
 * http://usejsdoc.org/
 */
var Validator = require("../module/gwvalidator.js");
var should = require("should");

//var logger = require("../module/log4red.js");
//logger.setCategory("GwValidator");

// ログ設定
var gwValidator = new Validator(null);
//var gwValidator = new Validator(logger);

describe('必須チェック', function() {
	  it('Checke Empty String', function() {
		  var arg = "";
		  gwValidator.isEmpty(arg, "テスト項目1").should.equal(false);
	  });
	  it('Checke Undefined', function() {
		  var arg;
		  gwValidator.isEmpty(arg, "テスト項目2").should.equal(false);
	  });
	  it('Check Not Empty', function() {
		  var arg = "abcd";
		  gwValidator.isEmpty(arg, "テスト項目3").should.equal(true);
	  });
});

describe('桁数チェック', function() {
	  it('Checke Empty String', function() {
		  var arg = "";
		  gwValidator.isLength(arg, 5, "テスト項目1").should.equal(true);
	  });
	  it('Checke Undefined', function() {
		  var arg;
		  gwValidator.isLength(arg, 5, "テスト項目2").should.equal(true);
	  });
	  it('Check True', function() {
		  var arg = "12345";
		  gwValidator.isLength(arg, 5, "テスト項目3").should.equal(true);
	  });
	  it('Check False', function() {
		  var arg = "123456";
		  gwValidator.isLength(arg, 5, "テスト項目3").should.equal(false);
	  });
});

describe('範囲チェック', function() {
	  it('Checke Empty String', function() {
		  var arg = "";
		  gwValidator.isInt(arg, [1,10], "テスト項目1").should.equal(false);
	  });
	  it('Checke Undefined', function() {
		  var arg;
		  gwValidator.isInt(arg, [1,10], "テスト項目2").should.equal(false);
	  });
	  it('Check True', function() {
		  var arg = "1";
		  gwValidator.isInt(arg, [1,10], "テスト項目3").should.equal(true);
	  });
	  it('Check True-equal MaxValue', function() {
		  var arg = "10";
		  gwValidator.isInt(arg, [1,10], "テスト項目4").should.equal(true);
	  });
	  it('Check False', function() {
		  var arg = "11";
		  gwValidator.isInt(arg, [1,10], "テスト項目5").should.equal(false);
	  });
});